1. Field of Invention
The present invention relates generally to mass digital data storage systems. More particularly, the present invention relates to systems and methods for efficiently enabling physical block usage information to be updated within a non-volatile memory system.
2. Description of the Related Art
The use of non-volatile memory systems such as flash memory storage systems is increasing due to the compact physical size of such memory systems, and the ability for non-volatile memory to be repetitively reprogrammed. The compact physical size of flash memory storage systems facilitates the use of such storage systems in devices which are becoming increasingly prevalent. Devices which use flash memory storage systems include, but are not limited to, digital cameras, digital camcorders, digital music players, handheld personal computers, and global positioning devices. The ability to repetitively reprogram non-volatile memory included in flash memory storage systems enables flash memory storage systems to be used and reused.
In general, flash memory storage systems may include flash memory cards and flash memory chip sets. Flash memory chip sets generally include flash memory components and controller components. Typically, a flash memory chip set may be arranged to be assembled into an embedded system. The manufacturers of such assemblies or host systems typically acquire flash memory in component-form, as well as other components, then assemble the flash memory and the other components into a host system.
When a memory system is powered down, the power down may either occur because a user has shut down the memory system, or because there has been a loss of power to the memory system. If a user chooses to power down the memory system, the memory system generally completes substantially all current processes, e.g., the memory system completes a process of writing a file from a host system into a directory associated with the memory system. In addition, information or data within the memory system may be stored in a current, up-to-date state. If a power down occurs because of an unexpected or abrupt loss of power due to a power failure, for example, then current processes are not completed and are instead typically aborted. Further, some information or data may be lost.
A memory system which has been powered down under “normal” circumstances, as for example in response to a user request to cut power to the memory system, generally does not require a disk scan or data recovery to be performed, as all processes which were occurring at the time a power down request was received have been completed. This is typically referred to as a “normal shutdown” or “normal power down.” However, a memory system which has been powered down under “abnormal” circumstances, e.g., due to a power failure, battery failure or accident power removal, typically requires a disk scan and a data recovery to be performed, as will be appreciated by those skilled in the art. The power down under abnormal circumstances is typically referred to as an “abnormal shutdown” or an “abnormal power down.”
When an abnormal shutdown occurs, information stored in a memory system may be lost. By way of example, when erase counts stored in an erase count block as described in co-pending U.S. patent application Ser. No. 10/281,626, which has been incorporated by reference, have not been updated for a relatively long time before an abnormal shut down occurs, current erase counts may not be reflected in the erase count block. In some instances, the erase count stored in an erase count block for a particular physical block may have a significantly lower value than an actual erase count of the physical block. When an erase count stored in an erase count block has a value that is significantly lower than a corresponding actual erase count of a physical block, after an abnormal shutdown and a subsequent power up, the erase count of the physical block may effectively be reset to the stored erase count. As a result, the physical block may have significantly more wear than indicated by the erase count stored within the physical block.
Therefore, what is desired is a process and a system which enables information stored in a memory system to be periodically updated. That is, what is needed is an efficient method for allowing data associated with a memory system to be relatively regularly updated such that when the memory system is shut down abnormally and then powered up, the data restored using a data recovery process at power up is fairly current.